C#でのOCR用のページ回転を検出する方法 | IronOCR

IronOCR を使って C# でページの回転を検出する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCRのDetectPageOrientationメソッドは、PDF文書や画像のページ回転角度(0°、90°、180°、270°)を自動的に識別します。 これは、各ページのRotationAngleプロパティを返し、正確なテキスト抽出のための信頼スコアでプログラムによる方向修正を可能にします。

ページ回転検出は、文書ページが時計回りか反時計回りに0度、90度、180度、270度回転したかを識別します。 この情報は、正確なレンダリングとテキスト抽出のために、ページが正しい向きで表示または処理されることを保証します。

クイックスタート: DetectPageOrientation を使用してページの回転を識別する

. 。 この例では、PDF上でIronOCRの`DetectPageOrientation`を使って`RotationAngle`プロパティにアクセスすることを示します。 最小限のコードで、高速なページ回転の検出と修正を提供します。 ```cs :title=Detect and Fix Page Rotation Instantly var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation(); Console.WriteLine(rotationResults.First().RotationAngle); ```
## ドキュメントのページ回転を検出するにはどうすればよいですか? . 。 ドキュメントを読み込んだら、`DetectPageOrientation`メソッドを使用して、各ページの回転を特定します。 このメソッドは、0度、90度、180度、270度に対応しています。 これらの標準的な回転を超える歪んだ画像には、[IronOCRの画像補正フィルター](https://ironsoftware.com/csharp/ocr/how-to/image-quality-correction/)の`Deskew`メソッドを使用してください。 次に、検出された角度を使用して画像を元の向きに回転させます。 [サンプルPDF](/static-assets/ocr/how-to/detect-page-rotation/Clockwise90.pdf)を使って作業してみましょう。 BRACKET-i-OPEN--この関数は、テキスト密度の高いドキュメントで最もよく機能します。 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/detect-page-rotation-detect-page-rotation.cs ```
### 検出結果は何を意味しますか? - `ページ番号`:ページのゼロベースのインデックス。 - `RotationAngle`:度単位の回転角度。 `Rotate`メソッドで方向を修正してください。 - `HighConfidence`:エッジケースを処理するためのオリエンテーション結果の信頼度。 ### どのような場合に高い信頼値を使用する必要がありますか? `HighConfidence`プロパティは、回転の検出が不確かな曖昧なドキュメントや低品質なドキュメントにとって非常に重要です。 テキストがまばらであったり、レイアウトが特殊であったり、スキャンの質が悪かったりする文書は、信頼度のスコアが低くなることがよくあります。 このような場合は、追加の検証を実装するか、検出前に[画質補正フィルター](https://ironsoftware.com/csharp/ocr/examples/ocr-image-filters-for-net-tesseract/)を適用してください。 この値を使用して、信頼性の低いページのフォールバック戦略または手動レビューを実装します。 たとえば、信頼度が80%を下回った場合は、ページを複数の方向で処理してOCR結果を比較するか、手動レビューのフラグを立てます。 IronOCRの[コンピューター・ビジョン機能](https://ironsoftware.com/csharp/ocr/how-to/computer-vision/)は、困難な文書のテキスト領域をより正確に識別するのに役立ちます。 ### 検出された回転を修正するにはどうすればよいですか? 回転角度を特定した後、`OcrInput` オブジェクトの `Rotate` メソッドを使用して、OCR の前に向きを修正します。 これにより、最適なテキスト認識精度が保証されます。 包括的な向きの修正については、[画像の向き修正ガイド](https://ironsoftware.com/csharp/ocr/how-to/image-orientation-correction/)を参照してください。 修正プロセスは以下の通りです: ```csharp // Apply rotation correction based on detection results if (result.RotationAngle != 0) { input.Rotate(360 - result.RotationAngle); // Rotate back to 0° } ``` 追加の前処理を必要とする文書については、[OcrInput Class](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-input-for-iron-tesseract/)を検討してください。 ## 検出速度と精度をカスタマイズするにはどうすればよいですか? . 。 `DetectPageOrientation`メソッドは、検出の詳細を制御するためのオプションのパラメータを受け入れます。 `OrientationDetectionMode`列挙型を提供することで、要件に基づいて検出速度と精度を調整できます。 実装方法は以下の通りです: ```csharp :path=/static-assets/ocr/content-code-examples/how-to/detect-page-rotation-detect-page-rotation-advanced.cs ``` ### どの検出モードを選択すればよいですか? `OrientationDetectionMode`には4つの速度オプションがあります: **Balanced**、**Detailed**、**ExtremeDetailed**はIronOcr.Extensions.AdvancedScanパッケージを必要とします。 これらのオプションは、Windows x86およびMac ARMでは使用できません。 - **高速**:精度が低い高速検出。 スピードが重要なドラフトや一括処理に最適です。 `DetectPageOrientation`のデフォルトです。 [マルチスレッドのサポート](https://ironsoftware.com/csharp/ocr/how-to/async/)により、何千ものページを効率的に処理します。 - **バランス**:スピードと正確さのバランス。 本番作業に適しています。 [AdvancedScan拡張機能](https://ironsoftware.com/csharp/ocr/product-updates/milestones-advancedscan-extension/)を使用し、パフォーマンスを維持しながら精度を向上させています。 - **詳細**:低速、高精度。 特に、複雑なレイアウトや内容が混在する文書など、正確で重要な作業に最適です。 - **ExtremeDetailed**:最も遅いスピード、最も高い精度。 **詳細**が不十分な場合や、テキストが大きく歪んでいる場合にのみ使用してください。 ### パフォーマンスに関する一般的な考慮事項とは

パフォーマンスはモードによって大きく異なります。 高速モードでは、1分間に数百ページを処理します; ExtremeDetailedでは、1ページあたり数秒かかる場合があります。 正確さの要件と時間的制約に基づいて選択してください。 最適なパフォーマンスのために 1.**画像解像度**: [DPI設定](https://ironsoftware.com/csharp/ocr/how-to/dpi-setting/)を高くすると、精度は向上しますが、処理時間が長くなります。回転検出には通常 150-300 DPI で十分です。 2.**ドキュメントのタイプ**: テキスト密度の高いドキュメントは、疎なレイアウトよりも速く正確に処理されます。 [フィルタウィザード](https://ironsoftware.com/csharp/ocr/how-to/filter-wizard/)を使用して、検出前に画質を最適化します。 3.**リソース使用**:大きなバッチを処理するときのメモリ使用量を監視してください。 [progress tracking](https://ironsoftware.com/csharp/ocr/how-to/progress-tracking/) を実装して、フィードバックを提供し、システムリソースを管理します。 4.**並列処理**:一括処理にはIronOCRのマルチスレッドを使用し、精度を保ちながら複数の文書を同時に処理します。 ### 混在言語のドキュメントはどのように扱えばよいですか? オリエンテーションが混在するドキュメントの場合は、`DetectPageOrientation`で各ページを個別に処理し、OCRの前にページごとに回転補正をかけます。 これにより、初期状態にかかわらず、適切なオリエンテーションが保証されます。 効果的なアプローチをご紹介しましょう: ```csharp // Process each page with individual rotation detection for (int i = 0; i < results.Count; i++) { var pageResult = results[i]; // Apply rotation only to pages that need it if (pageResult.RotationAngle != 0 && pageResult.HighConfidence) { // Correct the specific page input.Pages[i].Rotate(360 - pageResult.RotationAngle); } } ``` [さまざまな品質のスキャン文書](https://ironsoftware.com/csharp/ocr/how-to/read-scanned-document/)や[複数ページのTIFF](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multipage-tiff/)を含む複雑なシナリオでは、最適な結果を得るために各ページを個別に前処理してください。 混合フォーマットの入力を処理する場合、[OcrResultクラス](https://ironsoftware.com/csharp/ocr/examples/results-objects/)は詳細なページ情報を提供し、高度なエラー処理と品質管理ワークフローを可能にします。 高スループットの生産環境では、[速度と精度のバランスをとるための高速 OCR 構成](https://ironsoftware.com/csharp/ocr/examples/tune-tesseract-for-speed-in-dotnet/)オプションを検討してください。 テキストとバーコードの両方を含むドキュメントを処理する場合は、IronOCRの[OCR with Barcode & QR Reading](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-barcodes/)機能を使用して、すべての情報を一度に抽出し、効率を向上させます。

よくある質問

ページ回転検出とは何ですか?

ページ回転検出は、文書ページが0度、90度、180度、270度回転したかを識別します。これはIronOCRにとって、ページが正しい向きで処理され、PDFや画像からの正確なテキスト抽出とレンダリングを可能にするために非常に重要です。

C# を使っ て PDF 内のページ回転を素早 く 検出す る 方法は?

最小限のコードでIronOCRのDetectPageOrientationメソッドを使用する: var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation(); これはすべてのページの回転情報を返し、RotationAngleプロパティを通してアクセスできる。

どのような回転角度を検出できますか?

IronOCRのDetectPageOrientationメソッドは0度、90度、180度、270度の標準的な回転を検出することができます。これらの標準的な回転を超える歪んだ画像には、画像補正フィルターからIronOCRの傾き補正メソッドを使用してください。

DetectPageOrientationはどのような情報を返しますか?

このメソッドは、各ページについて3つの主要なプロパティを返します:PageNumber (ゼロベースのインデックス)、RotationAngle (IronOCRのRotateメソッドで使用する度単位の回転)、HighConfidence (エッジケースを扱うための信頼度)です。

HighConfidence プロパティは、どのような場合に使用するのですか?

HighConfidenceプロパティは、回転の検出が不確かな曖昧な文書や低品質の文書を扱う場合に使用します。テキストがまばらであったり、レイアウトが特殊であったり、スキャン画質が悪かったりするドキュメントは、IronOCRの信頼度スコアが低くなることが多く、追加の検証や画質補正フィルターが必要になります。

この機能は、特定のタイプのドキュメントに最適ですか?

IronOCRのDetectPageOrientation機能は、テキストが密集した文書に最適です。テキストが少ない文書や複雑なレイアウトの文書では、最適な結果を得るために検出の前に画質補正フィルタを適用することを検討してください。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

レビュー済み

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'name'

Filename: sections/author_component.php

Line Number: 70

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 70
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

">

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'title'

Filename: sections/author_component.php

Line Number: 84

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 84
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'comment'

Filename: sections/author_component.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once